###################################################################################
#                                                                                 #
# NAME: meson.build                                                               #
#                                                                                 #
# AUTHOR: Mike Karlesky, Mark VanderVoord, Greg Williams.                         #
# WRITTEN BY: Michael Brockus.                                                    #
#                                                                                 #
# License: MIT                                                                    #
#                                                                                 #
###################################################################################



project('unity', 'c',
    license         : 'MIT',
    meson_version   : '>=0.52.0',
    default_options: [
        'buildtype=minsize',
        'optimization=3', 
        'warning_level=3',
        'werror=true',
        ]
)
lang = 'c'
cc = meson.get_compiler(lang)


##
#
# Meson: Add compiler flags
#
##
if cc.get_id() == 'clang'
    add_project_arguments(cc.get_supported_arguments(
            [
            '-Wweak-vtables', '-Wexit-time-destructors',
            '-Wglobal-constructors', '-Wmissing-noreturn' 
            ]
        ), language: lang)
endif

if cc.get_argument_syntax() == 'gcc'
    add_project_arguments(cc.get_supported_arguments(
            [
            '-Wformat', '-Waddress', '-Winit-self', '-Wno-multichar',
            '-Wpointer-arith'       , '-Wwrite-strings'              , 
            '-Wno-parentheses'      , '-Wno-type-limits'             , 
            '-Wformat-security'     , '-Wunreachable-code'           , 
            '-Waggregate-return'    , '-Wformat-nonliteral'          ,
            '-Wmissing-prototypes'  , '-Wold-style-definition'       ,
            '-Wmissing-declarations', '-Wmissing-include-dirs'       , 
            '-Wno-unused-parameter' , '-Wdeclaration-after-statement'
            ]
        ), language: lang)
endif

if cc.get_id() == 'msvc'
    add_project_arguments(cc.get_supported_arguments(
            [
            '/w44265', '/w44061', '/w44062', 
            '/wd4018', '/wd4146', '/wd4244',
            '/wd4305',
            ]
        ), language: lang)
endif

subdir('src')

unity_dep = declare_dependency(link_with: unity_lib, include_directories: unity_dir)
